package com.atguigu.bigdata.scala.chapter08

object Scala01_Match {

    def main(args: Array[String]): Unit = {
        // TODO - 模式匹配
        // 所谓的模式匹配，其实为了模仿java的switch语法,因为scala中没有switch
        // java中的switch除了分支判断以外，其实还起到了一个数据匹配的问题

        // scala中没有default语法的。使用特殊分支判断进行模型
        // scala中没有break关键字，那么就没有所谓的穿透现象
        // scala中的如果匹配成功， 那么执行箭头后面的逻辑代码，这个代码执行完毕后，会自动跳出匹配，无需break
        // 如果分支逻辑代码只有一行，那么大括号可以省略。
        // java中switch语法会有先后顺序
        // scala中的模式匹配没有语法的先后顺序，就是靠case的先后顺序

        // 如果case下划线分支放置在最前面，那么后续的所有的分支都不执行不到，但是不会发生错误
        // 如果分支判断中没有case下划线分支，所有的其他分支也匹配不成功，那么会发生异常，MatchError
        val age = 40

        age match {
            //case _  => println("其他")
            case 10 => println("年龄为10")
            case 20 => println("年龄为20")
            case 30 => println("年龄为30")
        }
    }
}
